The present invention relates to transport and storage of compressed video and audio streams. Illustratively, the invention is illustrated herein using the International Standards Organization (ISO) Motion Picture Experts Group (MPEG) 2 standard for compressing video and related audio, conveying the compressed video and related audio to a decoder and presenting the video and related audio together. See ISO/IEC IS 13818-2: Information Technology-Generic Coding of Moving Pictures and Associated Audio Information: Video; ISO/IEC DIS 13818-1: Information Technology-Generic Coding of Moving Pictures and Associated Audio Information: Systems. For compressed audio there are numerous standards including ISO/IEC IS 11172-2: 1993 Information Technology-Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to about 1.5Mbit/sec-Part 3 Audio (MPEG-1 Audio); Dolby AC-3; ISO.backslash.IEC DIS 13818-3: 1994 Information Technology-Coding of Moving Pictures and Associated Audio Information: Audio (MPEG-2 Audio). Each program is presumed to include multiple related component elementary streams such as a video elementary stream, one or more audio elementary streams, one or more private data elementary streams, etc. Illustratively, MPEG-1 and MPEG-2 provide for hierarchically organized streams. That is, for a given program, audio and video elementary streams are separately encoded to produced compressed audio and video streams. A good tutorial for MPEG-2 video compression is contained in D. Le Gall, MPEG: A Video Compression Standard for Multimedia Applications, COMMUNICATIONS OF THE ACM, April 1991. These compressed audio and video elementary streams are illustratively placed in a higher layer stream such as an MPEG-2 compliant transport stream. A good tutorial of MPEG-2 transport streams is contained in A. Wasilewski, MPEG-2 Systems Specification: Blueprint for Network Interoperability, COMM. TECH., Feb., 1994. The higher layer transport stream provides a manner for associating all related encoded video, audio and private data streams of each program carried therein so that the elementary streams of any given program can be extracted, decoded and presented together in a coherent fashion. The higher layer transport stream may include compressed audio, video and private data for only a single program or for multiple programs.
According to the MPEG-2 standard, the data of each digital elementary stream is first placed into program elementary stream (PES) packets of arbitrary length. The PES packet data, and other data, relating to one or more programs may be combined into one or more transport streams. The transport stream is organized into fixed length (more precisely, 188 byte length) packets. Each of the transport stream packets includes a four byte header and a 184 byte payload. The transport packet header includes a synchronization value, for use in identifying the boundaries (i.e., beginning) of each transport packet, followed by a packet identifier or PID. The purpose of the PID is to label the transport packet. All packets with a particular PID have related contents, e.g., all have PES packet data for a particular elementary stream, etc.
Each transport packet can carry PES packet data, e.g., private data, video data or audio data (e.g., which may be compressed and formed into streams according to MPEG-2 syntax), or program specific information (PSI) data (described below). Transport packets may not contain both PES packet data and PSI data. Furthermore, transport packets may only contain PES packet data for a single elementary stream.
PES bearing packets may also contain program clock reference (PCR) values, presentation time stamps (PTS) and decoding time stamps (DTS). Each program has a single time base established by a system time clock at the encoder in relation to which all elementary streams of the particular program are encoded. The PCR is simply a snapshot of this encoder system time clock for a particular program. Note that it is not unusual to have divergent PCR values for the elementary streams associated with different programs. PTS's indicate the time when a video picture or audio frame should be presented (i.e., displayed on a monitor or converted to sound on a loudspeaker) relative to the encoder clock (PCR's) of the encoders which produced the video and audio. On the other hand, DTS's indicate the time when a video picture should be decoded relative to the encoder clock. PTS's enable the synchronization of video and audio of a particular program despite the lack of instantaneous correlation between the video and audio bit rates. DTS's enable the timely submission of compressed anchor video pictures to the encoder for use in decoding interceded pictures which depend thereon.
PSI data includes information other than elementary stream data which is necessary to decode the PES packet data. Examples of PSI are the program association table (PAT), the program mapping table (PMT), conditional access information, and the network information table (NIT). The PAT indicates where the PMT entries (called program definitions) of each program carried by the transport stream may be found. Specifically, the PAT correlates the PID's of the transport packets carrying the program definitions with each program carried in the respective transport stream. The PMT has a program definition corresponding to each program carried in the respective transport stream. Each program definition indicates: (1) the PID of the transport packets bearing the PCR's associated with that program, (2) each ES that comprises the program, (3) the PID's of the transport packets bearing the data of each respective ES, and (4) stream specific conditional access information (discussed below). A first type of conditional access information, referred to as entitlement management messages (EMM), provides system wide oriented scrambling and access control information. A second type of conditional access information, referred to as entitlement control messages (ECM), provides elementary stream specific scrambling and access control information. The NIT contains information indicating network parameters.
FIG. 1 illustrates a prior art program encoder architecture 10 produced by Divicom, located in Milpitas, Calif. As shown, the program encoder 10 has plural plug in printed circuit card modules 11, 15, 17, 19, a main board 30, and an I-bus 20 for interconnecting the modules 11, 15, 17 and 19 to the main board 30. The I bus 20 is actually five separate busses referred to as the command bus .COPYRGT. bus), the system clock bus (SY bus), the upstream message bus (UM bus), the downstream message bus (DM bus) and the video bus (V bus). Each module 11-19 and each circuit 31-69 is briefly described below.